package cn.bonoon.core.plugins;

import java.util.List;

import cn.bonoon.entities.plugins.AccountPrivilegeEntity;
import cn.bonoon.entities.plugins.RoleEntity;
import cn.bonoon.kernel.support.IOperator;
import cn.bonoon.kernel.support.services.GenericService;

public interface RoleService extends GenericService<RoleEntity> {
	
	List<RoleEntity> getRoles(IOperator opt);
	
	List<Long> getRolesId(Long id);
	
	void saveAssignRole(IOperator opt, Long aid, Long... roleIds);
	
	List<String> getPrivilegeMeunId(Long roleId);
	
	long getActions(String meunId, Long roleId);
	
	// 保存管理员系统管理下的菜单权限
	void saveAdminPrivilege(IOperator opt, Long aid, String moduleId, String channelId, String... menuIds);

	// 管理员身份的用户在“系统管理”频道下的菜单权限
	List<AccountPrivilegeEntity> getAccountPrivilege(Long accountId, String moduleId, String channelId);

	List<RoleEntity> getRoles(Long accountId);
	

	// public interface PrivageParser{
	//
	// PrivilegeEntity parse(RoleEntity entity, Map<String, PrivilegeEntity>
	// pes, String p);
	// }
	// void save(RoleEntity entity, String[] privages, PrivageParser parser);
	// void update(RoleEntity entity, String[] privages, PrivageParser parser);

	// List<RoleEntity> getRoles();
	// List<RoleAssignEntity> getRoleAssign(Long id);

	// List<RoleEntity> getMyRoles(IOperator opt);

	// List<Long> getPrivilegeIds(Long roleId);

	// List<PrivilegeEntity> getPrivilege(String channelId, Long roleId);

	// boolean exsitChannel(String channelId, Long roleId);
}
